package service;

import java.util.ArrayList;
import java.util.List;

import javax.ejb.EJB;
import javax.ejb.Local;
import javax.ejb.Stateless;

import dao.VoyageDao;
import dto.VoyageVO;
import entity.Voyage;

// @Stateless pour EJB Session sans état
// @Local pour appel direct local possible (depuis même JVM)
// @Remote pour appel distant possible (via RMI)

// éviter d'intercaler des commentaires

@Stateless
@Local
// @Remote
public class ServiceVoyageDaoBean implements ServiceVoyageDao{

	private VoyageDao voyageDao;

	@EJB(beanName="VoyageDaoJpa")
	public void setVoyageDao(VoyageDao voyageDao) {
		System.out.println("setVoyageDao effectué dans ServiceVoyageDaoBean");
		this.voyageDao = voyageDao;
	}

	public VoyageDao getVoyageDao() {
		return voyageDao;
	}

	public List<VoyageVO> getAllVoyages() {
		List<Voyage> listeVoyages = voyageDao.getAllVoyages();
		List<VoyageVO> result = new ArrayList<VoyageVO>();
		System.out.println("trace ServiceVoyageDaoBean.getAllVoyages()");
		System.out.println("trace ServiceVoyageDaoBean : taille listeVoyage :"+listeVoyages.size());
		for (Voyage voyage : listeVoyages) {
			System.out.println(voyage);
			System.out.println(new VoyageVO(voyage));
			result.add(new VoyageVO(voyage));	
		}
		return result;
	}

	public VoyageVO getVoyageById(long id){
		return new VoyageVO(voyageDao.getVoyageById(id));
	}

}
